const fs = require('fs');
const path = require('path');

// 步骤1：提示创建文件夹
console.log('(1) 请输入要创建的文件夹: mkdir filedir');
process.stdin.once('data', (mkdirInput) => {
    const mkdirCmd = mkdirInput.toString().trim();
    const [cmd, dirName] = mkdirCmd.split(' ');

    // 验证命令格式
    if (cmd !== 'mkdir' || !dirName) {
        console.error('命令格式错误！请使用 "mkdir 文件夹名" 格式');
        process.exit(1);
    }

    // 创建文件夹
    const dirPath = path.join(__dirname, dirName);
    fs.mkdir(dirPath, { recursive: false }, (err) => {
        if (err) {
            console.error('文件夹创建失败：', err.message);
            process.exit(1);
        }
        console.log('文件目录创建成功!!\n');

        // 步骤2：提示创建文件
        console.log(`(2) 请输入要创建的文件: touch file.txt`);
        process.stdin.once('data', (touchInput) => {
            const touchCmd = touchInput.toString().trim();
            const [touchCmdType, fileName] = touchCmd.split(' ');

            if (touchCmdType !== 'touch' || !fileName) {
                console.error('命令格式错误！请使用 "touch 文件名" 格式');
                process.exit(1);
            }

            // 创建文件并写入内容
            const filePath = path.join(dirPath, fileName);
            const fileContent = 'hello node';
            fs.writeFile(filePath, fileContent, (err) => {
                if (err) {
                    console.error('文件创建失败：', err.message);
                    process.exit(1);
                }
                console.log('文件创建成功\n');

                // 步骤3：提示删除文件
                console.log(`(3) 请输入要删除的文件: delete ${fileName}`);
                process.stdin.once('data', (deleteInput) => {
                    const deleteCmd = deleteInput.toString().trim();
                    const [deleteCmdType, deleteFileName] = deleteCmd.split(' ');

                    if ((deleteCmdType !== 'delete' && !deleteFileName) || deleteFileName !== fileName) {
                        console.error(`命令错误！请输入 "delete ${fileName}" 删除目标文件`);
                        process.exit(1);
                    }

                    // 删除文件
                    fs.unlink(filePath, (err) => {
                        if (err) {
                            console.error('文件删除失败：', err.message);
                            process.exit(1);
                        }
                        console.log(`文件 ${deleteFileName} 删除成功`);
                        process.exit(0); // 成功退出程序
                    });
                });
            });
        });
    });
});

// 处理输入错误
process.stdin.on('error', (err) => {
    console.error('输入处理错误：', err.message);
    process.exit(1);
});